package algorithm.ks.wz;

import java.util.*;

public class Main {

    static class Node{
        public List<Node> list = new ArrayList<>();
        public int value;
        public Node(int value){
            this.value = value;
        }
    }



    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        HashSet<Node> heads = new HashSet<>();
        Node[] arr = new Node[N];
        for (int i = 0; i < N; i++) {
            int num = sc.nextInt();
            arr[i] = arr[i] == null ? new Node(i) : arr[i];
            heads.add(arr[i]);
            for (int j = 0; j < num; j++) {
                int index = sc.nextInt();
                if(index == i){
                    System.out.println(-1);
                    break;
                }
                if(index < i){
                    arr[i].list.add(arr[index]);
                } else {
                    arr[index] = arr[index] == null ? new Node(index) : arr[index];
                    arr[i].list.add(arr[index]);
                }
                if(heads.contains(arr[index])){
                    heads.remove(arr[index]);
                }

            }
        }


//        String str = sc.next();
//        char[] chars = str.toCharArray();
//        int p_num = 0;
//        int m_num = 0;
//        long result = 0;
//        for (char aChar : chars) {
//            if (aChar == 'M' && m_num == 2) {
//                System.out.println(result);
//                break;
//            } else if (aChar == 'P') {
//                if(p_num >= 3)
//                    result += 15;
//                else{
//                    result += 10;
//                }
//                m_num = 0;
//                p_num++;
//            } else if (aChar == 'M'){
//                p_num = 0;
//                m_num++;
//            } else if (aChar == 'G') {
//                p_num = 0;
//                m_num = 0;
//                result += 5;
//            }
//        }
//        System.out.println(result);


//        int[][] data = new int[num][4];
//        for (int i = 0; i < num; i++) {
//            for (int j = 0; j < 4; j++) {
//                data[i][j] = sc.nextInt();
//            }
//        }
//        for (int i = 0; i < num; i++) {
//
//            int tmp = 1;
//            int total = 0;
//            int oneNum = 0;
//            while(tmp <= data[i][3]){
//                if((tmp & data[i][3]) != 0)
//                    oneNum++;
//                total++;
//                tmp = tmp << 1;
//            }
//
//            int result = 0;
//            int zeroNum = total - oneNum;
//            for (int j = 0; j >= data[i][0] - oneNum && j <= data[i][1] ; j++) {
////                result +=
//            }
//
//
//            System.out.println(result);
//        }

    }
}
